package com.xgp.company.创建型模式.第一种_单例模式.懒汉式;

/**
 *
 * 核心：保证一个类只有一个实例，并且提供一个范围该实例的全局访问点
 */
public class SingletonDemo02 {

    //保证类只有一个实例，私有其构造器
    private SingletonDemo02() {

    }
    //创建自身对象,当时不用立即加载
    private static SingletonDemo02 instance;

    //全局公开的方法  synchronized作用：加锁  多线程进来时会不安全，效率较低
    public static synchronized SingletonDemo02 getInstance() {
        if(instance == null) {
            instance = new SingletonDemo02();
        }
        return instance;
    }

}

class SingletonDemo02Test {
    public static void main(String[] args) {
        SingletonDemo02 instance1 = SingletonDemo02.getInstance();
        SingletonDemo02 instance2 = SingletonDemo02.getInstance();

        System.out.println(instance1 == instance2);
    }
}
